/*************************************************************************
  > File Name: hello.cpp
  > Author: 16hxliang3
  > Mail: 16hxliang3@stu.edu.cn
  > Created Time: Thu 17 Mar 2022 06:54:48 AM CST
 ************************************************************************/

#include "limits.h"
#include <cstdint>
#include <iostream>
#include <unordered_map>
#include <utility>
#define tie1 INT_MAX
using namespace std;
class HelloPrint {
   public:
      HelloPrint( int argc, char** argv );
      HelloPrint( const HelloPrint& copy );
      int printHello( void );

   private:
      int number;
      char** content;
};
HelloPrint::HelloPrint( int argc, char** argv ) {
   number = argc;
   this->content = argv;
}
HelloPrint::HelloPrint( const HelloPrint& copy ) {
   this->number = copy.number;
   this->content = copy.content;
}
int HelloPrint::printHello( void ) {
   int i;
   if( number < 4 || number > 5 ) {
      cout << "There is something!" << endl;
   } else {
      for( i = 1; i < number - 1; i++ ) {
         if( i == 2 ) {
            cout << *( content + 4 ) << " ";
         } else {
            cout << *( content + i ) << " ";
         };
      };
      cout << *( content + 2 ) << "!" << endl;
   };
   return 0;
};
int testMap() {
   std::unordered_map< std::string, std::string > mtest = {
      {"te1", "te2"}
   };
   return 0;
};

int main( int argc, char** argv ) {
   // HelloPrint example(argc, argv);
   // example.printHello();
   // testMap();
   // std::unordered_map<std::string, HelloPrint> mtest = {{"te1", example}};
   // int a = 10;
   // int &&aa = 10;
   // const int &aaa = 10;
   // string b="hello";
   // aa = 100;
   // int i = tie1 - 1;
   // int j = i ^ tie1;
   // std::pair<int, int> t = {1, 2};
   // std::cout << t.first << std::endl;
   // std::cout << t.second << std::endl;
   // std::cout << i << std::endl;
   // std::cout << j << std::endl;
   // std::cout << a << std::endl;
   // std::cout << aa << std::endl;
   // std::cout << aaa << std::endl;
   std::cout << INT_MAX << std::endl;
   std::cout << INT_MAX << std::endl;
   std::cout << UINT32_MAX << std::endl;
   return 0;
}
